const fs = require("fs");
const path = require("path");

let buf = Buffer.alloc(10);

// read: 所谓的读操作就是将数据从磁盘文件中写入到 buffer 中
/**
 * fd 定位当前被打开的文件
 * buf 用于表示当前缓冲区
 * offset 表示当前从 buf 的那个位置开始执行写入
 * length 表示当前写入的长度
 * position 表示当前从文件的那个位置开始读取
 *  */
// 1234567890
/* fs.open("data.txt", "r", (err, rfd) => {
  console.log(rfd);
  fs.read(rfd, buf, 1, 4, 3, (err, readBytes, data) => {
    console.log(readBytes); // 3
    console.log(data); // 4
    console.log(data.toString()); // 4567
    console.log(buf, buf.toString()); // <Buffer 00 34 35 36 37 00 00 00 00 00> 4567
  });
}); */

// write 将缓存内容写入到磁盘文件中
/**
 * wfd 定位当前被打开的文件
 * buf 用于表示当前缓冲区
 * offset 表示当前从 buf 的那个位置开始执行读取
 * length 表示当前写入的长度
 * position 表示当前从文件的那个位置开始写入
 * */
buf = Buffer.from("1234567890");
fs.open("b.txt", "w", (err, wfd) => {
  fs.write(wfd, buf, 2, 4, 0, (err, written, buffer) => {
    console.log(
      "🚀 ~ fs.write ~ err, written, buffer:",
      err,
      written,
      buffer,
      buffer.toString()
    ); // null 4 <Buffer 31 32 33 34 35 36 37 38 39 30>
    fs.close(wfd);
  });
});
